{
   "endPoints":[
      {
         "path":"/words.{format}/randomWord",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"hasDictionaryDef",
                     "defaultValue":"true",
                     "description":"Only return words with dictionary definitions",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"includePartOfSpeech",
                     "description":"CSV part-of-speech values to include",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"excludePartOfSpeech",
                     "description":"CSV part-of-speech values to exclude",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minCorpusCount",
                     "description":"Minimum corpus frequency for terms",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"maxCorpusCount",
                     "description":"Maximum corpus frequency for terms",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minDictionaryCount",
                     "description":"Minimum dictionary count",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"maxDictionaryCount",
                     "description":"Maximum dictionary count",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minLength",
                     "description":"Minimum word length",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"maxLength",
                     "description":"Maximum word length",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"wordObject",
                     "errorResponses":[
                        {
                           "reason":"No word found.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Returns a single random WordObject, in the format specified by the URL",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/words.{format}/randomWords",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"hasDictionaryDef",
                     "description":"Only return words with dictionary definitions",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"includePartOfSpeech",
                     "description":"CSV part-of-speech values to include",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"excludePartOfSpeech",
                     "description":"CSV part-of-speech values to exclude",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minCorpusCount",
                     "description":"Minimum corpus frequency for terms (integer)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"maxCorpusCount",
                     "description":"Maximum corpus frequency for terms (integer)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minDictionaryCount",
                     "description":"Minimum dictionary count (integer)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"maxDictionaryCount",
                     "description":"Maximum dictionary count (integer)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minLength",
                     "description":"Minimum word length (characters)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"maxLength",
                     "description":"Maximum word length (characters)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"sortBy",
                     "description":"Attribute to sort by",
                     "required":false,
                     "allowableValues":"alpha,count",
                     "paramType":"query"
                  },
                  {
                     "name":"sortOrder",
                     "description":"Sort direction",
                     "required":false,
                     "allowableValues":"asc,desc",
                     "paramType":"query"
                  },
                  {
                     "name":"limit",
                     "description":"Maximum number of results to return (integer)",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"List[wordObject]",
                     "errorResponses":[
                        {
                           "reason":"Invalid term supplied.",
                           "code":400
                        },
                        {
                           "reason":"No results.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Returns an array of random WordObjects, in the format specified by the URL",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/words.{format}/search",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"query",
                     "description":"Search term",
                     "required":true,
                     "paramType":"query"
                  },
                  {
                     "name":"caseSensitive",
                     "defaultValue":"true",
                     "description":"Search case sensitive",
                     "required":false,
                     "allowableValues":"true | false",
                     "paramType":"query"
                  },
                  {
                     "name":"includePartOfSpeech",
                     "description":"Only include these comma-delimited parts of speech",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"excludePartOfSpeech",
                     "description":"Exclude these comma-delimited parts of speech",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minCorpusCount",
                     "defaultValue":"5",
                     "description":"Minimum corpus frequency for terms",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"maxCorpusCount",
                     "description":"Maximum corpus frequency for terms",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"minDictionaryCount",
                     "defaultValue":"1",
                     "description":"Minimum number of dictionary entries",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"maxDictionaryCount",
                     "description":"Maximum dictionary count",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"minLength",
                     "defaultValue":"1",
                     "description":"Minimum word length",
                     "required":false,
                     "allowableValues":"0 to 1024",
                     "paramType":"query"
                  },
                  {
                     "name":"maxLength",
                     "description":"Maximum word length",
                     "required":false,
                     "allowableValues":"0 to 1024",
                     "paramType":"query"
                  },
                  {
                     "name":"skip",
                     "defaultValue":"0",
                     "description":"Results to skip",
                     "required":false,
                     "allowableValues":"0 to 1000",
                     "paramType":"query"
                  },
                  {
                     "name":"limit",
                     "defaultValue":"10",
                     "description":"Maximum number of results to return",
                     "required":false,
                     "allowableValues":"1 to 1000",
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"List[wordFrequency]",
                     "errorResponses":[
                        {
                           "reason":"Invalid term supplied.",
                           "code":400
                        },
                        {
                           "reason":"No results.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Searches words.",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/words.{format}/wordOfTheDay",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"date",
                     "description":"Fetches by date in yyyy-MM-dd",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"category",
                     "description":"Filters response by category",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"creator",
                     "description":"Filters response by username",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"WordOfTheDay",
                     "errorResponses":[
                        {
                           "reason":"No data available",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Returns a specific WordOfTheDay",
               "open":true,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/words.{format}/search/{query}",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"query",
                     "description":"Search query",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "name":"caseSensitive",
                     "defaultValue":"true",
                     "description":"Search case sensitive",
                     "required":false,
                     "allowableValues":"true | false",
                     "paramType":"query"
                  },
                  {
                     "name":"includePartOfSpeech",
                     "description":"Only include these comma-delimited parts of speech",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"excludePartOfSpeech",
                     "description":"Exclude these comma-delimited parts of speech",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"minCorpusCount",
                     "defaultValue":"5",
                     "description":"Minimum corpus frequency for terms",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"maxCorpusCount",
                     "description":"Maximum corpus frequency for terms",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"minDictionaryCount",
                     "defaultValue":"1",
                     "description":"Minimum number of dictionary entries",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"maxDictionaryCount",
                     "description":"Maximum dictionary count",
                     "required":false,
                     "allowableValues":"non-negative integer",
                     "paramType":"query"
                  },
                  {
                     "name":"minLength",
                     "defaultValue":"1",
                     "description":"Minimum word length",
                     "required":false,
                     "allowableValues":"0 to 1024",
                     "paramType":"query"
                  },
                  {
                     "name":"maxLength",
                     "description":"Maximum word length",
                     "required":false,
                     "allowableValues":"0 to 1024",
                     "paramType":"query"
                  },
                  {
                     "name":"skip",
                     "defaultValue":"0",
                     "description":"Results to skip",
                     "required":false,
                     "allowableValues":"0 to 1000",
                     "paramType":"query"
                  },
                  {
                     "name":"limit",
                     "defaultValue":"10",
                     "description":"Maximum number of results to return",
                     "required":false,
                     "allowableValues":"1 to 1000",
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"wordSearchResults",
                     "errorResponses":[
                        {
                           "reason":"Invalid query supplied.",
                           "code":400
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Searches words.",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      }
   ],
   "models":[
      {
         "name":"wordFrequency",
         "fields":[
            {
               "name":"count",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"wordstring",
               "required":false,
               "paramType":"string"
            }
         ]
      },
      {
         "name":"partOfSpeech",
         "fields":[
            {
               "name":"roots",
               "required":false,
               "paramType":"List[root]"
            }
         ]
      },
      {
         "name":"wordObject",
         "fields":[
            {
               "name":"word",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"vulgar",
               "required":false,
               "paramType":"string"
            }
         ]
      },
      {
         "name":"wordSearchResults",
         "fields":[
            {
               "name":"searchResult",
               "required":false,
               "wrapperName":"searchResults",
               "paramType":"List[WordSearchResult]"
            },
            {
               "name":"totalResults",
               "required":false,
               "paramType":"int"
            }
         ]
      },
      {
         "name":"contentProvider",
         "fields":[
            {
               "name":"name",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"id",
               "required":false,
               "paramType":"int"
            }
         ]
      },
      {
         "name":"WordOfTheDay",
         "fields":[
            {
               "name":"id",
               "required":true,
               "paramType":"long"
            },
            {
               "name":"category",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"example",
               "required":false,
               "wrapperName":"examples",
               "paramType":"List[SimpleExample]"
            },
            {
               "name":"createdBy",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"word",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"definition",
               "required":false,
               "wrapperName":"definitions",
               "paramType":"List[SimpleDefinition]"
            },
            {
               "name":"contentProvider",
               "required":false,
               "paramType":"contentProvider"
            },
            {
               "name":"createdAt",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"publishDate",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"parentId",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"note",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"htmlExtra",
               "required":false,
               "paramType":"string"
            }
         ]
      },
      {
         "name":"root",
         "fields":[
            {
               "name":"name",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"categories",
               "required":false,
               "paramType":"List[category]"
            }
         ]
      },
      {
         "name":"SimpleDefinition",
         "fields":[
            {
               "name":"text",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"partOfSpeech",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"note",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"source",
               "required":false,
               "paramType":"string"
            }
         ]
      },
      {
         "name":"WordSearchResult",
         "fields":[
            {
               "name":"count",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"word",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"lexicality",
               "required":false,
               "paramType":"double"
            }
         ]
      },
      {
         "name":"SimpleExample",
         "fields":[
            {
               "name":"url",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"text",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"title",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"id",
               "required":false,
               "paramType":"long"
            }
         ]
      },
      {
         "name":"category",
         "fields":[
            {
               "name":"name",
               "required":false,
               "paramType":"string"
            }
         ]
      }
   ]
}